home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 701-725 / 708 / intuisup / intuisup42.lha / Intuisup / source.lha / Library / intuisup_link.h < prev    next >
C/C++ Source or Header  |  1992-06-21  |  25KB  |  535 lines

  1. /* $Revision Header *** Header built automatically - do not edit! ***********
  2.  *
  3.  *    (C) Copyright 1991 by Torsten Jürgeleit
  4.  *
  5.  *    Name .....: intuisup.h
  6.  *    Created ..: Sunday 22-Dec-91 20:34:40
  7.  *    Revision .: 6
  8.  *
  9.  *    Date        Author                 Comment
  10.  *    =========   ====================   ====================
  11.  *    03-Jun-92   Torsten Jürgeleit      alternate color for menu item texts
  12.  *    14-Apr-92   Torsten Jürgeleit      neq flag GADGET_DATA_FLAG_NO_CLEAR
  13.  *    12-May-92   Torsten Jürgeleit      text colors for IClearWindow()
  14.  *    30-Apr-92   Torsten Jürgeleit      rasters for IClearWindow() and
  15.  *                                         requesters
  16.  *    01-Apr-92   Torsten Jürgeleit      changed parameter size of
  17.  *                                         IModifyGadget() for new value of
  18.  *                                         USE_CURRENT_VALUE (1L << 31)
  19.  *    31-Mar-92   Torsten Jürgeleit      changed USE_CURRENT_VALUE from ~0L
  20.  *                                         to (1L << 31)
  21.  *    21-Mar-92   Torsten Jürgeleit      flags for converting numbers with
  22.  *                                         string gadgets
  23.  *    22-Dec-91   Torsten Jürgeleit      Created this file!
  24.  *
  25.  ****************************************************************************
  26.  *
  27.  *    Includes, defines, structures, prototypes and pragmas for IntuiSup
  28.  *    library
  29.  *
  30.  * $Revision Header ********************************************************/
  31.  
  32. #ifndef    LIBRARIES_INTUISUP_H
  33. #define    LIBRARIES_INTUISUP_H
  34.  
  35.     /* Includes */
  36.  
  37. #ifndef    EXEC_TYPES_H
  38. #include <exec/types.h>
  39. #endif    /* EXEC_TYPES_H */
  40.  
  41. #ifndef    EXEC_LISTS_H
  42. #include <exec/lists.h>
  43. #endif    /* EXEC_LISTS_H */
  44.  
  45. #ifndef    LIBRARIES_DISKFONT_H
  46. #include <libraries/diskfont.h>
  47. #endif    /* LIBRARIES_DISKFONT_H */
  48.  
  49. #ifndef    INTUITION_INTUITION_H
  50. #include <intuition/intuition.h>
  51. #endif    /* INTUITION_INTUITION_H */
  52.  
  53.     /* Defines for render */
  54.  
  55. #define RENDER_INFO_FLAG_INNER_WINDOW        (USHORT)(1 << 0)    /* use upper left corner of inner window as location (0,0) */
  56. #define RENDER_INFO_FLAG_BACK_FILL        (USHORT)(1 << 1)    /* fill window back ground with different color */
  57. #define RENDER_INFO_FLAG_AVAIL_FONTS        (USHORT)(1 << 2)    /* scan available fonts and use this list for IAskFont/IOpenFont */
  58.  
  59. #define INTUISUP_DATA_END    (USHORT)0       /* mark end of data arry */
  60.  
  61.     /* Defines for open window flags */
  62.  
  63. #define OPEN_WINDOW_FLAG_CENTER_WINDOW        (USHORT)(1 << 0)    /* center window on screen */
  64. #define OPEN_WINDOW_FLAG_RENDER_PENS        (USHORT)(1 << 1)    /* use render pens for detail and backfill pen */
  65.  
  66.     /* Defines for clear window flags */
  67.  
  68. #define CLEAR_WINDOW_FLAG_CUSTOM_DRAW_MODE    (1 << 0)   /* don't change draw mode */
  69. #define CLEAR_WINDOW_FLAG_CUSTOM_COLOR        (1 << 1)   /* don't change background color */
  70. #define CLEAR_WINDOW_FLAG_NORMAL_COLOR        (1 << 2)   /* use normal background color */
  71. #define CLEAR_WINDOW_FLAG_USE_RASTER        (1 << 3)   /* use standard raster for window background */
  72. #define CLEAR_WINDOW_FLAG_ABSOLUTE_POS        (1 << 4)   /* don't add window border offset to given upper left position */
  73. #define CLEAR_WINDOW_FLAG_TEXT1_COLOR        (1 << 5)   /* use text color 1 */
  74. #define CLEAR_WINDOW_FLAG_TEXT2_COLOR        (1 << 6)   /* use text color 2 */
  75.  
  76.     /* Defines for texts */
  77.  
  78. #define TEXT_DATA_TYPE_TEXT            (USHORT)1
  79. #define TEXT_DATA_TYPE_NUM_UNSIGNED_DEC        (USHORT)2
  80. #define TEXT_DATA_TYPE_NUM_SIGNED_DEC        (USHORT)3
  81. #define TEXT_DATA_TYPE_NUM_HEX            (USHORT)4
  82. #define TEXT_DATA_TYPE_NUM_BIN            (USHORT)5
  83.  
  84. #define TEXT_DATA_FLAG_BOLD            (USHORT)(1 << 0)
  85. #define TEXT_DATA_FLAG_ITALIC            (USHORT)(1 << 1)
  86. #define TEXT_DATA_FLAG_UNDERLINED        (USHORT)(1 << 2)
  87. #define TEXT_DATA_FLAG_ABSOLUTE_POS        (USHORT)(1 << 3)    /* absolute text pos given - don't add border offsets */
  88. #define TEXT_DATA_FLAG_CENTER            (USHORT)(1 << 4)    /* center text with in window width */
  89. #define TEXT_DATA_FLAG_PLACE_LEFT        (USHORT)(1 << 5)    /* place text left of given left edge */
  90. #define TEXT_DATA_FLAG_COLOR2            (USHORT)(1 << 6)    /* use 2nd text render pen */
  91. #define TEXT_DATA_FLAG_COMPLEMENT        (USHORT)(1 << 7)    /* use complement of front and back pen */
  92. #define TEXT_DATA_FLAG_BACK_FILL        (USHORT)(1 << 8)    /* use draw mode JAM2 to fill text background with ri_BackPen */
  93. #define TEXT_DATA_FLAG_NO_PRINT            (USHORT)(1 << 9)    /* don't print text - only calc width */
  94. #define TEXT_DATA_FLAG_NUM_IDENTIFIER        (USHORT)(1 << 10)    /* convert number with normal (assmebler style) leading identifier `$' or `%' */
  95. #define TEXT_DATA_FLAG_NUM_C_STYLE        (USHORT)(1 << 11)    /* use C style identifier `0x' for hex numbers */
  96. #define TEXT_DATA_FLAG_NUM_LEADING_ZEROES    (USHORT)(1 << 12)    /* convert number includeing leading zeroes */
  97. #define TEXT_DATA_FLAG_NUM_UPPER_CASE        (USHORT)(1 << 13)    /* use upper case characters for hex number */
  98.  
  99. #define CONVERT_FLAG_IDENTIFIER            (USHORT)(1 << 0)    /* convert number with normal (assmebler style) leading identifier `$' or `%' */
  100. #define CONVERT_FLAG_C_STYLE            (USHORT)(1 << 1)    /* use C style identifier `0x' for hex numbers */
  101. #define CONVERT_FLAG_LEADING_ZEROES        (USHORT)(1 << 2)    /* convert number includeing leading zeroes */
  102. #define CONVERT_FLAG_UPPER_CASE            (USHORT)(1 << 3)    /* use upper case characters for hex number */
  103.  
  104.     /* Structures for texts */
  105.  
  106. struct TextData {
  107.     USHORT    td_Type;
  108.     USHORT    td_Flags;
  109.     SHORT    td_LeftEdge;
  110.     SHORT    td_TopEdge;
  111.     BYTE    *td_Text;
  112.     struct TextAttr  *td_TextAttr;
  113. };
  114.     /* Defines for borders */
  115.  
  116. #define BORDER_DATA_TYPE_BOX1_OUT    (USHORT)1
  117. #define BORDER_DATA_TYPE_BOX1_IN    (USHORT)2
  118. #define BORDER_DATA_TYPE_BOX2_OUT    (USHORT)3
  119. #define BORDER_DATA_TYPE_BOX2_IN    (USHORT)4
  120.  
  121.     /* Structures for borders */
  122.  
  123. struct BorderData {
  124.     USHORT    bd_Type;
  125.     SHORT    bd_LeftEdge;
  126.     SHORT    bd_TopEdge;
  127.     USHORT    bd_Width;
  128.     USHORT    bd_Height;
  129. };
  130.     /* Defines for gadgets */
  131.  
  132. #define ISUP_ID        ((ULONG)'I' << 24 | (ULONG)'S' << 16 | 'U' << 8 | 'P')
  133.  
  134. #define GADGET_DATA_TYPE_BUTTON        (USHORT)1    /* button gadget */
  135. #define GADGET_DATA_TYPE_CHECK        (USHORT)2    /* checkbox gadget */
  136. #define GADGET_DATA_TYPE_MX        (USHORT)3    /* mutual exclude gadget */
  137. #define GADGET_DATA_TYPE_STRING        (USHORT)4    /* string input gadget */
  138. #define GADGET_DATA_TYPE_INTEGER    (USHORT)5    /* integer input gadget */
  139. #define GADGET_DATA_TYPE_SLIDER        (USHORT)6    /* slider gadget */
  140. #define GADGET_DATA_TYPE_SCROLLER    (USHORT)7    /* scroller gadget */
  141. #define GADGET_DATA_TYPE_CYCLE        (USHORT)8    /* cycle gadget */
  142. #define GADGET_DATA_TYPE_COUNT        (USHORT)9    /* count gadget */
  143. #define GADGET_DATA_TYPE_LISTVIEW    (USHORT)10    /* list view gadget */
  144. #define GADGET_DATA_TYPE_PALETTE    (USHORT)11    /* palette gadget */
  145.  
  146. #define GADGET_DATA_FLAG_DISABLED        (1L << 0)    /* gadget disabled (ghosted) - default enabled */
  147. #define GADGET_DATA_FLAG_NO_BORDER        (1L << 1)    /* no gadget border - default with border */
  148. #define GADGET_DATA_FLAG_HIGH_COMP        (1L << 2)    /* highliting by complement - default by select border */
  149. #define GADGET_DATA_FLAG_ORIENTATION_VERT    (1L << 3)    /* vertical orientation - default horizontal */
  150. #define GADGET_DATA_FLAG_HOTKEY            (1L << 4)    /* hotkey given - default none */
  151. #define GADGET_DATA_FLAG_NO_TEXT_OUTPUT        (1L << 5)    /* no text output, but scan gadget text for hotkey */
  152. #define GADGET_DATA_FLAG_TEXT_LEFT        (1L << 6)    /* place text left of gadget */
  153. #define GADGET_DATA_FLAG_TEXT_RIGHT        (1L << 7)    /* place text right of gadget */
  154. #define GADGET_DATA_FLAG_TEXT_ABOVE        (1L << 8)    /* place text above of gadget */
  155. #define GADGET_DATA_FLAG_TEXT_BELOW        (1L << 9)    /* place text below of gadget */
  156. #define GADGET_DATA_FLAG_TEXT_COLOR2        (1L << 10)    /* use 2nd text render pen for gadget text */
  157. #define GADGET_DATA_FLAG_BUTTON_TOGGLE        (1L << 11)    /* button gadgets: toggle button - default no toggle */
  158. #define GADGET_DATA_FLAG_BUTTON_IMAGE        (1L << 12)    /* button gadgets: render image - default no image */
  159. #define GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE    (1L << 13)    /* input gadgets: acivate after GADGETUP next or previous input gadget */
  160. #define GADGET_DATA_FLAG_STRING_UNSIGNED_DEC    (1L << 14)    /* string gadgets: input default no pointer to string but an unsigned decimal number */
  161. #define GADGET_DATA_FLAG_STRING_SIGNED_DEC    (1L << 15)    /* string gadgets: input default no pointer to string but an signed decimal number */
  162. #define GADGET_DATA_FLAG_STRING_HEX        (1L << 16)    /* string gadgets: input default no pointer to string but an hex number */
  163. #define GADGET_DATA_FLAG_STRING_BIN        (1L << 17)    /* string gadgets: input default no pointer to string but an binary number */
  164. #define GADGET_DATA_FLAG_SCROLLER_NO_ARROWS    (1L << 18)    /* scroller gadget: no arrows - default with arrows */
  165. #define GADGET_DATA_FLAG_COUNT_SIGNED_DEC    (1L << 19)    /* count gadget: signed dec - default unsigned dec */
  166. #define GADGET_DATA_FLAG_LISTVIEW_READ_ONLY    (1L << 20)    /* list view gadget: read only - default selection enabled */
  167. #define GADGET_DATA_FLAG_LISTVIEW_SHOW_SELECTED (1L << 21)    /* list view gadget: show last selected entry - default no */
  168. #define GADGET_DATA_FLAG_PALETTE_NO_INDICATOR    (1L << 22)    /* palette gadget: no current color indicator - default with indicator */
  169. #define GADGET_DATA_FLAG_PALETTE_INDICATOR_TOP    (1L << 23)    /* palette gadget: place indicator at top - default at left */
  170. #define GADGET_DATA_FLAG_MOVE_POINTER        (1L << 24)    /* move mouse pointer to center of this gadget */
  171. #define GADGET_DATA_FLAG_NO_CLEAR        (1L << 25)    /* don't clear area occupied by this gadget before drawing */
  172.  
  173. #define GADGET_IDCMP_FLAGS_BUTTON    (GADGETUP | VANILLAKEY)
  174. #define GADGET_IDCMP_FLAGS_CHECK    (GADGETDOWN | VANILLAKEY)
  175. #define GADGET_IDCMP_FLAGS_MX        (GADGETDOWN | VANILLAKEY)
  176. #define GADGET_IDCMP_FLAGS_STRING    (GADGETUP | VANILLAKEY)
  177. #define GADGET_IDCMP_FLAGS_INTEGER    (GADGETUP | VANILLAKEY)
  178. #define GADGET_IDCMP_FLAGS_SLIDER    (GADGETUP | MOUSEMOVE | VANILLAKEY)
  179. #define GADGET_IDCMP_FLAGS_SCROLLER    (GADGETDOWN | GADGETUP | MOUSEMOVE | INTUITICKS | VANILLAKEY)
  180. #define GADGET_IDCMP_FLAGS_CYCLE    (GADGETUP | VANILLAKEY)
  181. #define GADGET_IDCMP_FLAGS_COUNT    (GADGETDOWN | GADGETUP | MOUSEMOVE | VANILLAKEY)
  182. #define GADGET_IDCMP_FLAGS_LISTVIEW    (GADGETDOWN | GADGETUP | MOUSEMOVE | INTUITICKS | VANILLAKEY)
  183. #define GADGET_IDCMP_FLAGS_PALETTE    (GADGETUP | VANILLAKEY)
  184. #define GADGET_IDCMP_FLAGS_ALL        (GADGETDOWN | GADGETUP | MOUSEMOVE | INTUITICKS | VANILLAKEY)
  185.  
  186. #define INPUT_AUTO_ACTIVATE(next,prev)    ((((LONG)next) << 16) | prev)    /* macro for (gd_InputActivateNext | gd_InpuActivatePrev) */
  187.  
  188. #define USE_CURRENT_VALUE    (1L << 31)    /* used for set_gadget_attributes() to indicate data for which to use the current value */
  189.  
  190.     /* Structures for gadgets */
  191.  
  192. struct GadgetData {
  193.     ULONG    gd_Type;
  194.     ULONG    gd_Flags;
  195.     USHORT    gd_LeftEdge;
  196.     USHORT    gd_TopEdge;
  197.     USHORT    gd_Width;
  198.     USHORT    gd_Height;
  199.     BYTE    *gd_Text;
  200.     struct TextAttr  *gd_TextAttr;
  201.     union    {
  202.         struct {    /* standard data struct */
  203.         LONG    gd_Data1;
  204.         LONG    gd_Data2;
  205.         VOID    *gd_Data3;
  206.         } gd_Data;
  207.         struct {    /* for button gadgets */
  208.         ULONG    gd_ButtonSelected;        /* selection state for toggle buttons - ZERO = unselected, non ZERO = selected */
  209.         struct Image  *gd_ButtonNormalRender;    /* normal render image */
  210.         struct Image  *gd_ButtonSelectRender;    /* select render image */
  211.         } gd_ButtonData;
  212.         struct {    /* for check gadgets */
  213.         ULONG    gd_CheckSelected;    /* selection state - ZERO = unselected, non ZERO = selected */
  214.         ULONG    gd_CheckPad1;
  215.         ULONG    gd_CheckPad2;
  216.         } gd_CheckData;
  217.         struct {    /* for mutual exclude gadgets */
  218.         ULONG    gd_MXSpacing;        /* pixel spacing between MX gadgets */
  219.         ULONG    gd_MXActiveEntry;    /* num of active entry from text array */
  220.         BYTE    **gd_MXTextArray;    /* ptr to MX text ptr array */
  221.         } gd_MXData;
  222.         struct {    /* for string and integer gadgets */
  223.         ULONG    gd_InputLen;        /* len of input buffer */
  224.         USHORT    gd_InputActivateNext;    /* num of next string/num gadget to activate */
  225.         USHORT    gd_InputActivatePrev;    /* num of previous string/num gadget to activate */
  226.         BYTE    *gd_InputDefault;    /* string: default text [syntax: "text"] */
  227.                         /* integer: default number [syntax: (VOID *)num] */
  228.         } gd_InputData;
  229.         struct {    /* for slider gadgets */
  230.         LONG    gd_SliderMin;        /* min level */
  231.         LONG    gd_SliderMax;        /* max level */
  232.         LONG    gd_SliderLevel;        /* current slider level */
  233.         } gd_SliderData;
  234.         struct {    /* for scroller gadgets */
  235.         ULONG    gd_ScrollerVisible;    /* visible entries */
  236.         ULONG    gd_ScrollerTotal;    /* total entries */
  237.         ULONG    gd_ScrollerTop;        /* current top entry */
  238.         } gd_ScrollerData;
  239.         struct {    /* for cycle gadget */
  240.         ULONG    gd_CycleSpacing;    /* pixel spacing between pop up cycle list entries */
  241.         ULONG    gd_CycleActive;        /* num of current cycle text ptr array entry */
  242.         BYTE    **gd_CycleTextArray;    /* ptr to cycle text ptr array */
  243.         } gd_CycleData;
  244.         struct {    /* for count gadget */
  245.         ULONG    gd_CountMin;        /* min value */
  246.         ULONG    gd_CountMax;        /* max value */
  247.         ULONG    gd_CountValue;    /* current count value */
  248.         } gd_CountData;
  249.         struct {    /* for list view gadget */
  250.         ULONG    gd_ListViewSpacing;    /* pixel spacing between list view entries */
  251.         ULONG    gd_ListViewTop;        /* current top entry */
  252.         struct List  *gd_ListViewList;    /* current list ptr */
  253.         } gd_ListViewData;
  254.         struct {    /* for palette gadget */
  255.         ULONG    gd_PaletteDepth;    /* num of bitplanes for palette */
  256.         ULONG    gd_PaletteColorOffset;    /* first color of palette */
  257.         ULONG    gd_PaletteActiveColor;    /* selected color */
  258.         } gd_PaletteData;
  259.     } gd_SpecialData;
  260. };
  261.     /* Defines for auto request */
  262.  
  263. #define AUTO_REQ_FLAG_BACK_FILL        (USHORT)(1 << 0)
  264. #define AUTO_REQ_FLAG_RENDER_PENS    (USHORT)(1 << 1)
  265. #define AUTO_REQ_FLAG_TEXT_CENTER    (USHORT)(1 << 2)
  266. #define AUTO_REQ_FLAG_TEXT_COLOR2    (USHORT)(1 << 3)
  267. #define AUTO_REQ_FLAG_HOTKEY        (USHORT)(1 << 4)
  268. #define AUTO_REQ_FLAG_BEEP        (USHORT)(1 << 5)
  269. #define AUTO_REQ_FLAG_MOVE_POINTER_POS    (USHORT)(1 << 6)
  270. #define AUTO_REQ_FLAG_MOVE_POINTER_NEG    (USHORT)(1 << 7)
  271. #define AUTO_REQ_FLAG_DRAW_RASTER    (USHORT)(1 << 8)    /* draw raster around text area */
  272.  
  273.     /* Defines for requester */
  274.  
  275. #define REQ_DATA_FLAG_BACK_FILL        (1L << 0)
  276. #define REQ_DATA_FLAG_RENDER_PENS    (1L << 1)
  277. #define REQ_DATA_FLAG_INNER_WINDOW    (1L << 2)
  278. #define REQ_DATA_FLAG_AVAIL_FONTS    (1L << 3)
  279. #define REQ_DATA_FLAG_CENTER        (1L << 4)
  280. #define REQ_DATA_FLAG_DRAG_GADGET    (1L << 5)
  281. #define REQ_DATA_FLAG_DEPTH_GADGET    (1L << 6)
  282. #define REQ_DATA_FLAG_DRAW_RASTER    (1L << 7)    /* draw raster between FIRST BORDER and window border - FIRST BORDER will not be used further */
  283.  
  284.     /* Structures for requester */
  285.  
  286. struct RequesterData {
  287.     SHORT    rd_LeftEdge;
  288.     SHORT    rd_TopEdge;
  289.     SHORT    rd_Width;
  290.     SHORT    rd_Height;
  291.     ULONG    rd_Flags;
  292.     BYTE    *rd_Title;
  293.     struct TextData    *rd_Texts;
  294.     struct BorderData  *rd_Borders;
  295.     struct GadgetData  *rd_Gadgets;
  296. };
  297.     /* Defines for menus */
  298.  
  299. #define MENU_DATA_TYPE_TITLE        (USHORT)1
  300. #define MENU_DATA_TYPE_ITEM        (USHORT)2
  301. #define MENU_DATA_TYPE_SUBITEM        (USHORT)3
  302.  
  303. #define MENU_DATA_FLAG_DISABLED        (USHORT)(1 << 0)    /* disable menu or menu item */
  304. #define MENU_DATA_FLAG_ATTRIBUTE    (USHORT)(1 << 1)    /* attribute menu item */
  305. #define MENU_DATA_FLAG_SELECTED        (USHORT)(1 << 2)    /* selected attribute menu item */
  306. #define MENU_DATA_FLAG_EMPTY_LINE    (USHORT)(1 << 3)    /* insert empty line before this item */
  307. #define MENU_DATA_FLAG_HIGH_NONE    (USHORT)(1 << 4)    /* no highliting */
  308. #define MENU_DATA_FLAG_HIGH_BOX        (USHORT)(1 << 5)    /* highliting with box, otherwise with complement */
  309. #define MENU_DATA_FLAG_TEXT_COLOR2    (USHORT)(1 << 6)    /* alternate color for item text */
  310.  
  311.     /* Structures for menus */
  312.  
  313. struct MenuData {
  314.     USHORT    md_Type;
  315.     USHORT    md_Flags;
  316.     BYTE    *md_Name;
  317.     BYTE    *md_CommandKey;
  318.     ULONG    md_MutualExclude;
  319. };
  320.     /* Defines for text file */
  321.  
  322. #define TEXT_FILE_FLAG_TRIM_LINE        (USHORT)(1 << 0)    /* strip leading and trailing white space */
  323. #define TEXT_FILE_FLAG_SKIP_COMMENTS        (USHORT)(1 << 1)    /* skip C style comments */
  324. #define TEXT_FILE_FLAG_SKIP_EMPTY_LINES        (USHORT)(1 << 2)    /* skip empty lines */
  325. #define TEXT_FILE_FLAG_LINE_CONTINUATION    (USHORT)(1 << 3)    /* continue line with last character '\' in next line */
  326.  
  327. #define TEXT_FILE_STATUS_NORMAL            (SHORT)0
  328. #define TEXT_FILE_STATUS_EOF            (SHORT)1
  329.  
  330. #define TEXT_FILE_ERROR_NO_FILE_DATA        (SHORT)-1
  331. #define TEXT_FILE_ERROR_LINE_TOO_LONG        (SHORT)-2
  332. #define TEXT_FILE_ERROR_NO_COMMENT_END        (SHORT)-3
  333. #define TEXT_FILE_ERROR_READ_FAILED        (SHORT)-4
  334.  
  335.     /* Structures for text file */
  336.  
  337. struct FileData {
  338.     BYTE    *fd_Line;
  339.     USHORT    fd_LineLen;
  340.     USHORT    fd_LineNum;
  341. };
  342.     /* Structures for mouse pointer */
  343.  
  344. struct PointerData {
  345.     UBYTE    pd_Width;
  346.     UBYTE    pd_Height;
  347.     BYTE    pd_XOffset;
  348.     BYTE    pd_YOffset;
  349.     UWORD    *pd_Data;
  350. };
  351.     /* Defines for functions */
  352.  
  353. #define IGetRenderInfo(screen,flags)    get_render_info(screen, flags)
  354. #define IFreeRenderInfo(ri)        free_render_info(ri)
  355. #define IOpenWindow(ri,nw,flags)    open_window(ri,nw,flags)
  356. #define IClearWindow(ri,win,left,top,width,height,flags)    clear_window(ri,win,left,top,width,height,flags)
  357. #define ICloseWindow(win,more_windows)    close_window(win,more_windows)
  358. #define IAvailFonts(ri)            avail_fonts(ri)
  359. #define IAskFont(ri,ta)            ask_font(ri,ta)
  360. #define IOpenFont(ri,ta)        open_font(ri,ta)
  361.  
  362. #define IDisplayTexts(ri,win,td,hoffset,voffset,language_text_array)    display_texts(ri,win,td,hoffset,voffset,language_text_array)
  363. #define IPrintText(ri,win,text,left,top,type,flags,text_attr)    print_text(ri,win,text,left,top,type,flags,text_attr)
  364. #define IConvertUnsignedDec(num,buffer,flags)    convert_unsigned_dec(num,buffer,flags)
  365. #define IConvertSignedDec(num,buffer,flags)    convert_signed_dec(num,buffer,flags)
  366. #define IConvertHex(num,buffer,flags)        convert_hex(num,buffer,flags)
  367. #define IConvertBin(num,buffer,flags)        convert_bin(num,buffer,flags)
  368.  
  369. #define IDisplayBorders(ri,win,bd,hoffset,voffset)    display_borders(ri,win,bd,hoffset,voffset)
  370. #define IDrawBorder(ri,win,left,top,width,height,type)    draw_border(ri,win,left,top,width,height,type)
  371.  
  372. #define ICreateGadgets(ri,gd,hoffset,voffset,language_text_array)    create_gadgets(ri,gd,hoffset,voffset,language_text_array)
  373. #define IFreeGadgets(gl)        free_gadgets(gl)
  374. #define IDisplayGadgets(win, gl)    display_gadgets(win, gl)
  375. #define IRefreshGadgets(gl)        refresh_gadgets(gl)
  376. #define IModifyGadget(gl,entry,left,top,width,height)    modify_gadget(gl,entry,left,top,width,height)
  377. #define ISetGadgetAttributes(gl,data_entry,flag_mask,flag_bits,data1,data2,data3)    set_gadget_attributes(gl,data_entry,flag_mask,flag_bits,data1,data2,data3)
  378. #define IActivateInputGadget(gl,data_entry)    activate_input_gadget(gl,data_entry)
  379. #define IGadgetAddress(gl,data_entry)    gadget_address(gl,data_entry)
  380. #define IRemoveGadgets(gl)        remove_gadgets(gl)
  381. #define IGetMsg(uport)            get_msg(uport)
  382. #define IReplyMsg(imsg)            reply_msg(imsg)
  383.  
  384. #define IAutoRequest(req_win,title,body_text,pos_text,neg_text,pos_idcmp_flags,neg_idcmp_flags,req_flags,language_text_array)    auto_request(req_win,title,body_text,pos_text,neg_text,pos_idcmp_flags,neg_idcmp_flags,req_flags,language_text_array)
  385. #define IDisplayRequester(req_win,rd,language_text_array)    display_requester(req_win,rd,language_text_array)
  386. #define IRemoveRequester(rl)        remove_requester(rl)
  387.  
  388. #define ICreateMenu(ri,win,md,ta,language_text_array)    create_menu(ri,win,md,ta,language_text_array)
  389. #define IAttachMenu(win,ml)        attach_menu(win,ml)
  390. #define IMenuItemAddress(ml,menu_num)    menu_item_address(ml,menu_num)
  391. #define IRemoveMenu(ml)            remove_menu(ml)
  392. #define IFreeMenu(ml)            free_menu(ml)
  393.  
  394. #define IOpenTextFile(name,read_buffer_size,line_buffer_size,flags)    open_text_file(name,read_buffer_size,line_buffer_size,flags)
  395. #define IReadTextLine(fd)        read_text_line(fd)
  396. #define ICloseTextFile(fd)        close_text_file(fd)
  397.  
  398. #define IBuildLanguageTextArray(name,entries)    build_language_text_array(name,entries)
  399. #define IGetLanguageText(text,text_array)    get_language_text(text,text_array)
  400. #define IFreeLanguageTextArray(text_array)    free_language_text_array(text_array)
  401.  
  402. #define IChangeMousePointer(win,pd)        change_mouse_pointer(win,pd)
  403. #define IRestoreMousePointer(win)        restore_mouse_pointer(win)
  404. #define IMoveMousePointer(win,x,y,button)    move_mouse_pointer(win,x,y,button)
  405.  
  406.     /* Prototypes */
  407.  
  408. APTR   get_render_info(struct Screen  *screen, USHORT flags);
  409. SHORT  calc_color_difference(SHORT color1, SHORT color2);
  410. VOID   free_render_info(APTR ri);
  411. struct Window  *open_window(APTR ri, struct NewWindow  *nw, USHORT flags);
  412. VOID   clear_window(APTR ri, struct Window  *win, USHORT left_edge,
  413.         USHORT top_edge, USHORT width, USHORT height, USHORT flags);
  414. VOID   close_window(struct Window  *win, BOOL more_windows);
  415. struct AvailFontsHeader  *avail_fonts(APTR ri);
  416. struct TextAttr          *ask_font(APTR ri, struct TextAttr  *ta);
  417. struct TextFont          *open_font(APTR ri, struct TextAttr  *ta);
  418.  
  419. VOID   display_texts(APTR ri, struct Window  *win, struct TextData  *td,
  420.           SHORT hoffset, SHORT voffset,    BYTE **language_text_array);
  421. USHORT print_text(APTR ri, struct Window  *win, BYTE *text,
  422.            USHORT left_edge, USHORT top_edge, USHORT type, USHORT flags,
  423.                            struct TextAttr  *text_attr);
  424. USHORT convert_unsigned_dec(ULONG num, BYTE *buffer, USHORT flags);
  425. USHORT convert_signed_dec(LONG num, BYTE *buffer, USHORT flags);
  426. USHORT convert_hex(ULONG num, BYTE *buffer, USHORT flags);
  427. USHORT convert_bin(ULONG num, BYTE *buffer, USHORT flags);
  428.  
  429. VOID   display_borders(APTR ri, struct Window  *win, struct BorderData  *bd,
  430.                           SHORT hoffset, SHORT voffset);
  431. VOID   draw_border(APTR ri, struct Window  *win, USHORT left_edge,
  432.          USHORT top_edge, USHORT width, USHORT height, USHORT type);
  433. BYTE   *init_border(APTR ri, BYTE *buffer, SHORT left_edge, SHORT top_edge,
  434.                   USHORT width, USHORT height, USHORT type);
  435.  
  436. APTR   create_gadgets(APTR ri, struct GadgetData  *gd, SHORT hoffset,
  437.                  SHORT voffset, BYTE **language_text_array);
  438. VOID   free_gadgets(APTR gl);
  439. VOID   display_gadgets(struct Window  *win, APTR gl);
  440. VOID   refresh_gadgets(APTR gl);
  441. VOID   modify_gadget(APTR gl, USHORT data_entry, LONG left_edge,
  442.                   LONG top_edge, ULONG width, ULONG height);
  443. ULONG  set_gadget_attributes(APTR gl, USHORT data_entry, ULONG flag_mask,
  444.             ULONG flag_bits, ULONG data1, ULONG data2, VOID *data3);
  445. VOID   activate_input_gadget(APTR gl, USHORT data_entry);
  446. struct Gadget  *gadget_address(APTR gl, USHORT data_entry);
  447. struct Window  *remove_gadgets(APTR gl);
  448. struct IntuiMessage  *get_msg(struct MsgPort  *uport);
  449. VOID   reply_msg(struct IntuiMessage  *imsg);
  450.  
  451. BOOL   auto_request(struct Window  *req_win, BYTE *title, BYTE *body_text,
  452.                BYTE *pos_text, BYTE *neg_text, LONG pos_idcmp_flags,
  453.     LONG neg_idcmp_flags, USHORT req_flags, BYTE **language_text_array);
  454. APTR   display_requester(struct Window  *req_win,
  455.              struct RequesterData  *rd, BYTE **language_text_array);
  456. VOID   remove_requester(APTR rl);
  457.  
  458. APTR   create_menu(APTR ri, struct Window  *win, struct MenuData  *md,
  459.               struct TextAttr  *ta, BYTE **language_text_array);
  460. VOID   attach_menu(struct Window  *win, APTR ml);
  461. struct MenuItem  *menu_item_address(APTR ml, USHORT menu_num);
  462. struct Window    *remove_menu(APTR ml);
  463. VOID   free_menu(APTR ml);
  464.  
  465. struct FileData  *open_text_file(BYTE *name, USHORT read_buffer_size,
  466.                      USHORT line_buffer_size, USHORT flags);
  467. SHORT  read_text_line(struct FileData  *fd);
  468. VOID   close_text_file(struct FileData  *fd);
  469.  
  470. BYTE   **build_language_text_array(BYTE *name, USHORT entries);
  471. BYTE   *get_language_text(BYTE *text, BYTE **text_array);
  472. VOID   free_language_text_array(BYTE **text_array);
  473.  
  474. VOID   change_mouse_pointer(struct Window  *win, struct PointerData  *pd);
  475. VOID   restore_mouse_pointer(struct Window  *win);
  476. VOID   move_mouse_pointer(struct Window  *win, SHORT x, SHORT y, BOOL button);
  477.  
  478.     /* Pragmas */
  479.  
  480. #pragma intfunc(get_render_info(a0,d0))
  481. #pragma intfunc(calc_color_difference(d0,d1))
  482. #pragma intfunc(free_render_info(a0))
  483. #pragma intfunc(open_window(a0,a1,d0))
  484. #pragma intfunc(clear_window(a0,a1,d0,d1,d2,d3,d4))
  485. #pragma intfunc(close_window(a0,d0))
  486. #pragma intfunc(avail_fonts(a0))
  487. #pragma intfunc(ask_font(a0,a1))
  488. #pragma intfunc(open_font(a0,a1))
  489.  
  490. #pragma intfunc(display_texts(a0,a1,a2,d0,d1,a3))
  491. #pragma intfunc(print_text(a0,a1,a2,d0,d1,d2,d3,a3))
  492. #pragma intfunc(convert_unsigned_dec(d0,a0,d1))
  493. #pragma intfunc(convert_signed_dec(d0,a0,d1))
  494. #pragma intfunc(convert_hex(d0,a0,d1))
  495. #pragma intfunc(convert_bin(d0,a0,d1))
  496.  
  497. #pragma intfunc(display_borders(a0,a1,a2,d0,d1))
  498. #pragma intfunc(draw_border(a0,a1,d0,d1,d2,d3,d4))
  499. #pragma intfunc(init_border(a0,a1,d0,d1,d2,d3,d4))
  500.  
  501. #pragma intfunc(create_gadgets(a0,a1,d0,d1,a2))
  502. #pragma intfunc(free_gadgets(a0))
  503. #pragma intfunc(display_gadgets(a0,a1))
  504. #pragma intfunc(refresh_gadgets(a0))
  505. #pragma intfunc(set_gadget_attributes(a0,d0,d1,d2,d3,d4,a1))
  506. #pragma intfunc(activate_input_gadget(a0,d0))
  507. #pragma intfunc(gadget_address(a0,d0))
  508. #pragma intfunc(remove_gadgets(a0))
  509. #pragma intfunc(get_msg(a0))
  510. #pragma intfunc(reply_msg(a0))
  511.  
  512. #pragma intfunc(auto_request(a0,a1,a2,a3,d0,d1,d2,d3,d4))
  513. #pragma intfunc(display_requester(a0,a1,a2))
  514. #pragma intfunc(remove_requester(a0))
  515.  
  516. #pragma intfunc(create_menu(a0,a1,a2,a3,d0))
  517. #pragma intfunc(attach_menu(a0,a1))
  518. #pragma intfunc(menu_item_address(a0,d0))
  519. #pragma intfunc(remove_menu(a0))
  520. #pragma intfunc(free_menu(a0))
  521.  
  522. #pragma intfunc(open_text_file(a0,d0,d1,d2))
  523. #pragma intfunc(read_text_line(a0))
  524. #pragma intfunc(close_text_file(a0))
  525.  
  526. #pragma intfunc(build_language_text_array(a0,d0))
  527. #pragma intfunc(get_language_text(a0,a1))
  528. #pragma intfunc(free_language_text_array(a0))
  529.  
  530. #pragma intfunc(change_mouse_pointer(a0,a1))
  531. #pragma intfunc(restore_mouse_pointer(a0))
  532. #pragma intfunc(move_mouse_pointer(a0,d0,d1,d2))
  533.  
  534. #endif    /* INTUITION_SUPPORT */
  535.